import request from '@/config/axios'

// 配送订单明细项 VO
export interface OrderItemVO {
  id?: number // 主键ID
  orderId?: number // 配送订单ID
  baseId: number // 配送基地ID
  baseName?: string // 基地名称（冗余字段）
  productId: number // 配送商品ID
  productName?: string // 商品名称（冗余字段）
  unitPrice: number // 单价
  quantity: number // 配送数量
  totalPrice: number // 小计金额
  qualityRemark?: string // 质量备注
}

// 农场到自营门店的配送订单 VO
export interface OrderVO {
  id?: number // 主键ID
  orderNo?: string // 配送订单号（后端自动生成）
  farmId: number // 配送基地ID
  farmName?: string // 配送基地名称（冗余字段）
  totalPrice?: number // 配送总价
  vehiclePlate?: string // 车牌号
  logisticsCompany?: string // 配送物流公司
  logisticsNo?: string // 配送物流单号
  estimatedArrivalTime: Date // 预计到货时间
  actualDepartureTime?: Date // 实际出发时间
  actualArrivalTime?: Date // 实际到达时间
  status?: number // 订单状态
  deliveryStatus?: number // 配送状态
  alertStatus?: boolean // 预警状态
  alertTime?: Date // 预警时间
  remark?: string // 备注信息
  createTime?: Date // 创建时间
  updateTime?: Date // 更新时间
  items?: OrderItemVO[] // 配送明细列表
}

// 更新配送订单状态 VO
export interface OrderUpdateStatusVO {
  id: number // 订单ID
  status: number // 订单状态
  deliveryStatus: number // 配送状态
}

// 农场到基地的配送订单 API
export const OrderApi = {
  // 查询农场到基地的配送订单分页
  getOrderPage: async (params: any) => {
    return await request.get({ url: `/trade/deliveryOrder/page`, params })
  },

  // 查询农场到基地的配送订单详情
  getOrder: async (id: number) => {
    return await request.get({ url: `/trade/deliveryOrder/get?id=` + id })
  },

  // 新增农场到基地的配送订单
  createOrder: async (data: OrderVO) => {
    return await request.post({ url: `/trade/deliveryOrder/create`, data })
  },

  // 修改农场到基地的配送订单
  updateOrder: async (data: OrderVO) => {
    return await request.put({ url: `/trade/deliveryOrder/update`, data })
  },

  // 更新农场到基地的配送订单状态
  updateOrderStatus: async (data: OrderUpdateStatusVO) => {
    return await request.put({ url: `/trade/deliveryOrder/update-status`, data })
  },

  // 删除农场到基地的配送订单
  deleteOrder: async (id: number) => {
    return await request.delete({ url: `/trade/deliveryOrder/delete?id=` + id })
  },

  // 导出农场到基地的配送订单 Excel
  exportOrder: async (params) => {
    return await request.download({ url: `/trade/deliveryOrder/export-excel`, params })
  },

  // 批量删除农场到基地的配送订单
  deleteOrderList: async (ids: number[]) => {
    return await request.delete({ url: `/trade/deliveryOrder/delete-list`, data: ids })
  }
}
